package com.doitedu.day02.array

import com.doitedu.day02.beans.User
// 导入可以变的集合包  不可变的是默认的不用导包
import scala.collection.mutable.ArrayBuffer

/**
 * @Date 22.6.20
 * @Created by HANGGE
 * @Description
 *            数组的遍历
 *            for(x<- arr)   +  推导式 收集处理结果
 *            for(i <- 1 to arr.length -1)    +  推导式   收集处理结果
 *            arr.map(e=>println(e))
 *            arr.map(e=>e*10)  √   返回处理结果
 *            map(参数 : 函数)  处理每个元素的逻辑
 *            foreach(println) 没有返回值
 *
 *
 *
 *  打印集合中的每个元素
 *  将处理后的结果数据输出到文件 数据库
 *  foreach()  处理集合中的每个元素  没有返回值
 */
object _02Array遍历 {
  def main(args: Array[String]): Unit = {
    // 1) 不可变的数组
    val arr1 = Array[Int](1, 2, 3, 4)
    val arr2 = Array[String]("a", "b", "c", "d")
    //遍历  方式1
    /*for (x <- arr1) {
      println(x)
    }*/

    // 遍历 方式2
    /*  for (i <-  0  until arr1.length){
        arr1(i)
      }
  */

    //  遍历 方式3  迭代器的方式
    // 将集合转换成迭代器
    /* val iterator = arr1.toIterator
       while (iterator.hasNext){
         println(iterator.next())

       }*/

    // 遍历  方式4   map方法
    /**
     * 在数组上调用map方法
     * arr.map(f:String=>B)  B:Block(代码块)
     * map处理集合中的每个元素
     * 1 2 3 4 5
     */
    // arr2.map((e:String)=> e)
    // arr2.map(e => e)
    //  arr2.map(e => println(e.toUpperCase))
    // 将集合中的每个元素转换成大写 要结果
    val res: Array[String] = arr2.map(e => e.toUpperCase)
    println(res.toList)
    // 1 定义集合
    // 2 遍历
    // 3 将处理后的数据存储在集合中
    // 将集合中的每个元素  平方  再 * 10
    /*  arr1.map(e=>{
        val e2 = e*e
         e2*10
      })*/


    val ints = arr1.map(e => e * e * 10)
    println(ints.toList)
    // f:Int=>U
    arr1.foreach(x=>  {
      // 打印
      // 输出到IO  数据库  网络
      println(x*10)
    })


   // arr1.foreach((e:Int)=>println(e))
   // arr1.foreach(println(e))
    // 打印集合中的每个元素
   arr1.foreach(println)


  }


}
